定时批量进行ECS健康诊断

ECS实例健康诊断能全面检查实例的系统状态、网络状况及磁盘状况,以便及时了解健康情况并处理常见问题。此外,针对需定期为一批实例进行健康检查的需求,提供了预设的OOS公共模板(ACS-ECS-ScheduleToExecuteECSDiagnosticReports)。利用OOS的强大自动化运维能力,该模板可简化定时与批量诊断实例的过程,并方便获取异常报告。

操作步骤

创建执行

  1. 登录系统运维管理控制台,左侧导航栏选择自动化任务 > 公共任务模板

  2. 搜索ACS-ECS-ScheduleToExecuteECSDiagnosticReports,单击创建执行image

  3. 配置基本信息页面,填写参数。

    • 执行描述(可选):用户自定义的描述文本信息。

    • 模板类型:公共任务模板。

    • 模板选择:ACS-ECS-ScheduleToExecuteECSDiagnosticReports

    • 执行模式:自动执行。

    • 资源组(可选):自定义OOS任务所属的资源组。

    • 标签(可选):自定义OOS任务的标签。

  4. 单击下一步:设置参数,进入设置参数页面。

    • 定时类型:image

      • 立即执行:创建任务后立即执行,不会周期性重复执行。

      • 仅在指定时间执行一次:仅在指定时间执行一次。

      • 周期性重复执行:按照cron格式指定的时间周期性执行。

    • 重复频率的时区:默认是东八区北京时间。

    • 规则结束时间:任务结束的时间,默认2099-12-01 08:00:00。

    • 地域ID:指定运行的阿里云地域,可以通过DescribeRegions - 查询地域列表查询。image

    • targets: 可以按照多种方式选择,并且在每次运行时,具体执行的实例列表会根据指定的条件重新刷新。

      • 手动选择实例:直接指定运行的一个或者多个实例。

      • 指定实例标签:通过设置匹配的标签,动态指定目标实例。

      • 指定实例资源组:通过设置资源组的标签,动态指定一组实例。

      • 上传csv文件:人工上传实例列表。

      • 选择全部:该地域下所有实例。

      • 指定配置清单条件:可以指定匹配多个条件的实例,需要了解OOS语法。

    • rateControl: 批量执行时的并发控制

      • 速率控制类型:并发控制

      • 并发速率:一次执行多少个实例

      • 最大错误次数:执行几次或者百分比的失败次数则停止

    • 设置执行的RAM角色:OOS以什么角色执行对应的操作和API。可以参考为OOS服务设置RAM权限进行设置,其中执行批量实例健康诊断,需要以下三个API的操作权限:

      "ecs:CreateDiagnosticReport"
      "ecs:DescribeDiagnosticReportAttributes"
      "ecs:DescribeInstances"
    • 是否通知异常结果(可选):默认不通知。

      说明

      该通知只支持类钉钉的协议格式。

    • 通知地址(可选):类钉钉应用的Webhook地址

    • 通知@(可选):通知的内容中添加@人员。

  5. 单击下一步:确定,单击创建

查看历史执行结果

  1. 登录系统运维管理控制台,左侧导航栏选择自动化任务 > 任务执行管理

  2. 选择需要查看的记录,单击详情,执行结果是输出有异常的实例信息和异常信息,更进一步的详细说明可以通过IssueId诊断指标与诊断结果条目说明通过查询诊断结果条目ID获取。例如:

    - ResourceId: i-uf659o9rxxey22fpw1do
      HasPublicIp: true
      MetricSetId: dms-instancedefault
      MetricResult:
        Status: Finished
        MetricId: Instance.SGIngress
        Issues:
          Issue:
            - OccurrenceTime: 2024-04-11T09:37Z
              Additional: '{"Policy":"drop","Port":"22","Service":"SSH","Effect":"INSTANCE-SG-SSH-DISABLED","Protocol":"TCP","Direction":"ingress"}'
              Severity: Info
              IssueId: Instance.Network.SSHPortRuleDeny
            - OccurrenceTime: 2024-04-11T09:37Z
              Additional: '{"Policy":"drop","Port":"-1","Service":"PING","Effect":"INSTANCE-SG-PING-DISABLED","Protocol":"ICMP","Direction":"ingress"}'
              Severity: Info
              IssueId: Instance.SgRule.PingPortDeny
        Severity: Info
        MetricCategory: ECSService.SecurityGroup

    根据IssueId:Instance.Network.SSHPortRuleDeny获取的详细说明

    image.png